package com.mindskip.xzs.listener;
//在这段代码中，UserLogListener是一个用户事件日志监听器，用于监听用户事件并记录日志。
//1. 当用户事件发生时，会触发相应的UserEvent事件。
//2. UserLogListener作为监听器，注册了对UserEvent事件的监听。
//3. 一旦收到UserEvent事件，UserLogListener会调用UserEventLogService将用户事件日志插入数据库。

//1. UserLogListener实现了ApplicationListener接口，监听UserEvent事件。
//2. 通过构造方法注入了UserEventLogService依赖。
//3. 重写了onApplicationEvent方法，处理UserEvent事件，将用户事件日志插入数据库。

import com.mindskip.xzs.event.UserEvent;
import com.mindskip.xzs.service.UserEventLogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationListener;
import org.springframework.stereotype.Component;

/**
 * 用户事件日志监听器，用于监听用户事件并记录日志
 */
@Component
public class UserLogListener implements ApplicationListener<UserEvent> {

    private final UserEventLogService userEventLogService;

    /**
     * 构造方法，注入UserEventLogService依赖
     *
     * @param userEventLogService 用户事件日志服务
     */
    @Autowired
    public UserLogListener(UserEventLogService userEventLogService) {
        this.userEventLogService = userEventLogService;
    }

    /**
     * 处理用户事件，将用户事件日志插入数据库
     *
     * @param userEvent 用户事件
     */
    @Override
    public void onApplicationEvent(UserEvent userEvent) {
        userEventLogService.insertByFilter(userEvent.getUserEventLog());
    }

}
